package suanfa;

/**
 * @Author Stringzhua
 * @Date 2024/2/2 18:01
 * description:冒泡排序法
 * 24,69,80,57,13
 * 使用冒泡排序将其排成一个从小到大的有序排列
 * 将最大数放在最后一个位置[核心思想]
 */
public class BubbleSort02 {
    public static void main(String[] args) {
        /*
         * 数组 [24,69,80,57,13]
         * 第1轮排序:目标把最大数放在最后
         * 第1次比较[24,69,8,57,13]
         * 第2次比较[24,69,3,57513]
         * 第3次比较[24,69,5亿,83+13]
         * 第4次比较[24,69,57,13,80]
         * */
        int[] arr = {24, 69, 80, 57, 13, -1, 30, 200, -110};
        int temp = 0;//用于辅助交换的变量
        //将多轮排序使用外层循环包括起来即可
        //先死后活 =>4就是arr.length-1
        for (int i = 0; i < arr.length - 1; i++) {//外层循环是4次
            for (int j = 0; j < arr.length - 1 - i; j++) {//4次比较-3次-2次-1次
                //如果前面的数>后面的数,就交换
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
            System.out.println("\n===第" + (i + 1) + "轮排序===");
            for (int j = 0; j < arr.length; j++) {
                System.out.print(arr[j] + "\t");
            }
        }
    }
}
